package cn.zerlynn.sql.dialect.api;

import cn.zerlynn.sql.dialect.model.PageParam;
import cn.zerlynn.sql.dialect.model.SQLColumn;
import cn.zerlynn.sql.dialect.model.Table;

import java.util.List;

/**
 * AbstractDialect: Base class for common dialect behavior.
 *
 * @author: zerlynn
 * @createTime: 2024/10/24 0:08
 */
public class AbstractDialect implements IDialect {
    @Override
    public String getDatabaseName() {
        return "";
    }

    @Override
    public String getDatabaseVersion() {
        return "";
    }


    @Override
    public String createTable(Table table) {
        return "";
    }

    @Override
    public String dropTable(String tableName) {
        return "";
    }

    @Override
    public String alterTable(String tableName, String operation) {
        return "";
    }

    @Override
    public String formatColumn(String column) {
        return "";
    }

    @Override
    public String aliasColumn(SQLColumn column) {
        return "";
    }

    @Override
    public String abs(String column) {
        return "";
    }

    @Override
    public String round(String column, int scale) {
        return "";
    }

    @Override
    public String floor(String column) {
        return "";
    }

    @Override
    public String ceil(String column) {
        return "";
    }

    @Override
    public String concat(List<String> strings) {
        return "";
    }

    @Override
    public String substring(String column, int start, int length) {
        return "";
    }

    @Override
    public String length(String column) {
        return "";
    }

    @Override
    public String currentDate() {
        return "";
    }

    @Override
    public String currentTimestamp() {
        return "";
    }

    @Override
    public String dateAdd(String column, int amount, String unit) {
        return "";
    }

    @Override
    public String dateDiff(String start, String end, String unit) {
        return "";
    }

    @Override
    public String caseWhen(List<String> conditions, List<String> results, String defaultValue) {
        return "";
    }

    @Override
    public String count(String column) {
        return "";
    }

    @Override
    public String sum(String column) {
        return "";
    }

    @Override
    public String avg(String column) {
        return "";
    }

    @Override
    public String min(String column) {
        return "";
    }

    @Override
    public String max(String column) {
        return "";
    }

    @Override
    public String page(String sql, PageParam pageParam) {
        return "";
    }

    @Override
    public String isNull(String column) {
        return "";
    }

    @Override
    public String isNotNull(String column) {
        return "";
    }

    @Override
    public String toNumber(String column, String format) {
        return "";
    }

    @Override
    public String toChar(String column, String format) {
        return "";
    }

    @Override
    public String toDate(String column, String format) {
        return "";
    }

    @Override
    public String wrapWithSchema(String schema, String objectName) {
        return "";
    }

    @Override
    public String orderBy(List<String> columns, boolean ascending) {
        return "";
    }

    @Override
    public String castFormat(String format) {
        return "";
    }

    @Override
    public String getDatabaseType(String javaType) {
        return "";
    }

    @Override
    public String getNumericType() {
        return "";
    }
}
